package org.feng.repository;

import org.feng.entity.Student;
import org.springframework.data.r2dbc.repository.Query;
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
import org.springframework.stereotype.Repository;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * 学生表-数据库操作
 *
 * @version v1.0
 * @author: fengjinsong
 * @date: 2022年06月11日 11时01分
 */
@Repository
public interface StudentRepository extends ReactiveCrudRepository<Student, Integer> {
    /**
     * 按照学生ID查找
     *
     * @param id 学生ID
     * @return 对应ID的学生信息
     */
    Mono<Student> getStudentById(Integer id);

    /**
     * 通过学生姓名，模糊查询
     *
     * @param name 学生姓名的一部分
     * @return 学生列表
     */
    @Query("select id, name, age, weight, height from student where name like :name")
    Flux<Student> getStudentsByName(String name);
}
